package com.jsb.laundry.service;

import com.jsb.laundry.model.dto.UserInfoRequest;
import com.jsb.laundry.model.entity.TeamCentre;
import com.jsb.laundry.model.vo.FindByPromotionVo;
import com.jsb.laundry.model.vo.LoginUserInfoVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface LoginService {
    /**
     * 账号密码登录
     *
     * @return
     */
    int userLogin();

    /**
     * 根据open_id查询用户
     *
     * @param openId
     * @return
     */
    String findByUserId(String openId);

    /**
     * 用户注册生成的个人信息
     *
     * @param userInfoRequest
     * @return
     */
    int addUser(UserInfoRequest userInfoRequest);

    /**
     * 根据userid查询个人信息
     *
     * @param userId
     * @return
     */
    LoginUserInfoVo.UserInfo findUserInfo(String userId);

    /**
     * 注册用户资金信息
     *
     * @param userId
     * @return
     */
    int addCapitalAccount(String userId);

    /**
     * 向银行卡添加信息
     *
     * @param userId
     * @return
     */
    int addUserInfoForBank(String userId);

    /**
     * 查看邀请人是否是我们平台的用户
     *
     * @param inviterId
     * @return
     */
    String findByOpenId(String inviterId);

    /**
     * 添加邀请人
     *
     * @param inviterId
     * @param newUserId
     * @return
     */
    int addRiderPromotion(String inviterId, String newUserId);
    /**
     * 查看邀请人等级、和邀请人数、邀请人id
     * @param inviterId
     * @return
     */
    TeamCentre getRiderLevel(String inviterId);
    /**
     * 改变邀请人等级
     * @param inviterId
     * @return
     */
    int updRiderLevel(String inviterId,Integer userLevel);
    /**
     * 获取邀请人的手下的等级
     * @param riderId
     * @return
     */
    List<String> getSubLevel(String riderId);
}
